Session sequence
http://www.plantuml.com/plantuml/svg/fPAnRjmm38PtFWMHp0sQDQWFGJjqBxeNEfbtLayM7L5AMXHzzrgi9TZdswB1WFb__4cAUfPaOigZ1p0vSSZZaIBUVJeUFZxSmU1wmXDpEl8la8iBaubcH1bCpsykdF5alD1QePTCmHB-0PpFryXv-ionf_XzSFOII0JBULJv6vqe5lmQURpE_iAU8zPpR_JiFTRWRSZOotcs3Vr_yFuqAvRWBu2nQGvaeGZpBCbPDvcGCDBaDm7hVrx_ooxmGzEWwz1o26GJTXr0CSSFXuEQubFLIcdtQX9f7A1yPwmO5SXpe8QKeFhIg_7AttHMrN9FO2ELj4JZL8trP--iI6DMHX2uzEREGth2m2XlBjcXh5z8n740w4bIvD-BHzSjJ0KmiLxBpLxr1QgiaNTsN2il5HzAjSq0YZb1Wpn7N31UmJRB-lgb-56gPctCWcnM8g3qagNRtxVR9D1nMikrX4gRcsofxJczP5VlQhVxTUaj1z2qHYvGBQYnFRQUHMW5jpV-JA7Fe_y7.svg
code: plantuml
@startuml
autonumber "<b>0."
hide footbox
skinparam shadowing false
skinparam sequence {
GroupBorderThickness 1
ReferenceBorderThickness 1
}
actor user
participant repl
participant clj
participant cljs
participant cljs_repl
== connect ==
user ->> repl : connect
activate repl
repl -> clj : clone
activate clj
== eval repl ==
user ->> repl : eval code
create temp
repl -> temp : clone
activate temp
repl -> repl : eval
note right: no switching session
destroy temp
== switch session to cljs ==
user ->> repl : start cljs repl
create temp
repl -> temp : clone
activate temp
repl -> repl : switch to cljs.user
note right: repl is a original cljs session
repl -> cljs : set to cljs
destroy repl
activate cljs
cljs -> cljs_repl : clone
activate cljs_repl
temp -> repl : set to repl
destroy temp
activate repl
== quit cljs repl ==
user ->> cljs_repl : quit cljs repl
cljs_repl ->> cljs : quit
destroy cljs
cljs_repl ->> cljs_repl : close
destroy cljs_repl
@enduml